package Day21.ConstructorMethodReference;

/**
 * @version 1.0
 * @BelongsProject:IntelliJ IDEA
 * @BelongsPackage:Day21.ConstructorMethodReference
 * @Author:hyhWTX
 * @ClassName:Demo
 * @CreateTime:2022年-10月-22日 12:02
 * @Description: 类的构造器方法引用
 */
public class Demo {
    /**
    * @Author HYH
    * @Description 定义一个方法, 参数传递姓名和PersonBuilder接口, 方法中通过姓名创建Person对象
    * @Date 12:12 2022/10/22
    * @Param name
     * @param pb
    * @return void
    **/
    public static void printName(String name,PersonBuilder pb){
        Person person = pb.builderPerson(name);
        System.out.println(person.getName());
    }

    public static void main(String[] args) {
        //调用printName方法，方法的参数PersonBuilder接口是一个函数式接口。可以传递Lambda
//        printName("张三",(String name)->{
//            return new Person(name);
//        });
        //使用方法引用，已知构造方法，创建对象的方式，就可以使用
        printName("王五",Person::new);//使用Person类的带参构造方法,通过传递的姓名创建对象

    }
}
